#include "Addition.h"
#include "Multiplication.h"
#include "Subtraction.h"
#include "Division.h"

#include "../../runtime/AutomaticBoxCreatorRegistration.h"

namespace jm4bbx {
	
	typedef OperationBox<AdditionTrait<IntegerKeyRecordPolicyType, 
		IntegerKeyRecord>> IntegerAdditionBox;
	REGISTER_BOX_TO_RUNTIME_BASE(ADDITION_INTEGER, IntegerAdditionBox)
	
	typedef OperationBox<AdditionTrait<StringKeyRecordPolicyType, 
		StringKeyRecord>> StringAdditionBox;
	REGISTER_BOX_TO_RUNTIME_BASE(ADDITION_STRING, StringAdditionBox)

	typedef OperationBox<MultiplicationTrait<IntegerKeyRecordPolicyType, 
		IntegerKeyRecord>> IntMultiplicationBox;
	REGISTER_BOX_TO_RUNTIME_BASE(MULTIPLICATION_INTEGER, IntMultiplicationBox)

	typedef OperationBox<SubtractionTrait<IntegerKeyRecordPolicyType, 
		IntegerKeyRecord>> IntSubtractionBox;
	REGISTER_BOX_TO_RUNTIME_BASE(SUBTRACTION_INTEGER, IntSubtractionBox)

	typedef OperationBox<DivisionTrait<IntegerKeyRecordPolicyType, 
		IntegerKeyRecord>> IntDivisionnBox;
	REGISTER_BOX_TO_RUNTIME_BASE(DIVISION_INTEGER, IntDivisionnBox)
}
